import { NodeEnvs } from "@src/constants/env";
import nodemailer, { Transporter } from "nodemailer";
import type SMTPTransport from "nodemailer/lib/smtp-transport";

const NODE_ENV = process.env.NODE_ENV || "development";

/**
 * 创建邮件传输器
 * 开发环境使用 Ethereal Email 测试服务
 * 生产环境使用环境变量配置的 SMTP 服务
 */
function createTransport(): Transporter<SMTPTransport.SentMessageInfo> {
  // if (NODE_ENV !== NodeEnvs.Production) {
  //   // https://ethereal.email/create 通过创建临时用户测试
  //   return nodemailer.createTransport({
  //     host: 'smtp.ethereal.email',
  //     port: 587,
  //     auth: {
  //       user: 'odessa.quigley@ethereal.email',
  //       pass: 'esbgTJkSBGWcuGxTjC'
  //     }
  //   });
  // }

  // 生产环境配置
  return nodemailer.createTransport({
    host: process.env.SMTP_HOST,
    port: 465,
    secure: true,
    auth: {
      user: process.env.SMTP_USERNAME,
      pass: process.env.SMTP_PASSWORD,
    },
  });
}

const mailTransporter = createTransport();

export default mailTransporter;
export { nodemailer };
